package com.spring.blog.common.util;

import org.springframework.util.DigestUtils;
import org.springframework.util.StringUtils;

import java.nio.charset.StandardCharsets;
import java.util.UUID;

public class SecurityUtil {
    /**
     * 生成最终密码 salt+md5(salt+明文）
     */
    public static String encrypt(String password){
        String salt= UUID.randomUUID().toString().replace("-","");
        String finalPassword= DigestUtils.md5DigestAsHex((salt+password).getBytes(StandardCharsets.UTF_8));
        return (salt+finalPassword);
    }
    /**
     * 验证密码是否正确
     */
    public static boolean verify(String password,String finalPassword){
        //进行校验
        if(!StringUtils.hasLength(password)||!StringUtils.hasLength(finalPassword)){
            return false;
        }
        // 注意校验finalPassword是不是64位
        if(finalPassword.length()!=64){
            return false;
        }
        String salt=finalPassword.substring(0,32);
        String securityPassword=DigestUtils.md5DigestAsHex((salt+password).getBytes(StandardCharsets.UTF_8));
        return finalPassword.equals(salt+securityPassword);
    }

//    public static void main(String[] args) {
//        String encrypt = encrypt("123456");
//        System.out.println(encrypt);
//        boolean verify = verify("123456", encrypt);
//        System.out.println(verify);
//
//    }

}
